home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / apps / 610 / bdb13 / conv13 / conv13.gfa (.txt) < prev   
GFA-BASIC Atari  |  1991-11-04  |  3KB  |  129 lines

  1. '
  2. '
  3. ' Convert Book DataBase "books.bdb" file to version 1.3
  4. '
  5. '
  6. ' DIM dat|(610)
  7. dat$=SPACE$(1023)
  8. dat_adr%=V:dat$           !|(0)
  9. ' DIM rec12|(34)
  10. rec$=SPACE$(255)
  11. rec_adr%=V:rec$            !rec12|(0)
  12. title$=SPACE$(255)
  13. titl_adr%=V:title$
  14. com1$=SPACE$(255)
  15. com1_adr%=V:com1$
  16. '
  17. CHDRIVE "E"
  18. CHDIR "\bdbcust\conv13\"
  19. '
  20. OPEN "I",#1,"books.bdb"
  21. len%=LOF(#1)
  22. CLOSE #1
  23. '
  24. OPEN "R",#1,"books.bdb",12
  25. FIELD #1,4 AS mag$,4 AS cnt$,4 AS lgn$
  26. GET #1,1
  27. CLOSE #1
  28. '
  29. mag%=CVL(mag$)
  30. cnt%=CVL(cnt$)
  31. lgn%=CVL(lgn$)
  32. '
  33. PRINT "file length: ";len%
  34. PRINT "magick: ";HEX$(mag%,8)
  35. PRINT "book count: ";cnt%
  36. PRINT "string length: ";lgn%
  37. '
  38. mag13%=VAL("&H00077038")
  39. mag13$=MKL$(mag13%)
  40. '
  41. struc_sz12%=34
  42. struc_sz13%=34+(5*4)
  43. '
  44. @conv_magick("authors.bdb")
  45. @conv_magick("series.bdb")
  46. @conv_magick("books.bdb")
  47. '
  48. @conv_books
  49. @adj_str_lgn
  50. PRINT "new size s/b: ";(cnt%*(4*5))+(cnt%*3)+len%+512
  51. RENAME "books.bdb" AS "books.old"
  52. RENAME "books.new" AS "books.bdb"
  53. '
  54. END
  55. > PROCEDURE conv_magick(filen$)
  56.   OPEN "R",#1,filen$,4
  57.   FIELD #1,4 AS mag$
  58.   GET #1,1
  59.   mag12$=mag$
  60.   IF CVL(mag$)=mag13%
  61.     PRINT "File: ";filen$;" --- Not correct version to change; I quit!"
  62.     CLOSE #1
  63.     END
  64.   ELSE
  65.     mag$=mag13$
  66.     PUT #1,1
  67.     CLOSE #1
  68.     PRINT "File: ";filen$;" --- Magick number has been changed."
  69.   ENDIF
  70. RETURN
  71. PROCEDURE conv_books
  72.   OPEN "I",#1,"books.bdb"
  73.   OPEN "O",#2,"books.new"
  74.   '
  75.   PRINT "copying info and dialog strings..."
  76.   BGET #1,dat_adr%,610       ! copy file info and dialog strings
  77.   BPUT #2,dat_adr%,610
  78.   '
  79.   resv$=STRING$(600,0)
  80.   BPUT #2,V:resv$,512
  81.   '
  82.   PRINT "converting data structure..."
  83.   FOR rec#=1 TO cnt%          ! convert data structure
  84.     BGET #1,rec_adr%,34
  85.     BPUT #2,rec_adr%,34
  86.     OUT #2,0,0,0,0    ! comment2
  87.     OUT #2,1,2,3,4,5,6,7,8    ! resv 1
  88.     OUT #2,9,10,11,12,13,14,15,0
  89.   NEXT rec#
  90.   '
  91.   PRINT "converting strings..."
  92.   FOR rec#=1 TO cnt%
  93.     t1|=255
  94.     DO
  95.       INC t1|
  96.       a|=INP(#1)
  97.       POKE titl_adr%+t1|,a|
  98.       '      MID$(title$,t1|,t1|)=STR$(a|)
  99.     LOOP UNTIL a|=0
  100.     '
  101.     c1|=255
  102.     DO
  103.       INC c1|
  104.       a|=INP(#1)
  105.       POKE com1_adr%+c1|,a|
  106.       '      MID$(com1$,c1|,c1|)=STR$(a|)
  107.     LOOP UNTIL a|=0
  108.     '
  109.     BPUT #2,titl_adr%,t1|+1
  110.     BPUT #2,com1_adr%,c1|+1
  111.     OUT #2,0                  ! comment 2
  112.     OUT #2,0                  ! reserved string 1
  113.     OUT #2,0                  ! reserved string 2
  114.   NEXT rec#
  115.   CLOSE #1
  116.   CLOSE #2
  117. RETURN
  118. > PROCEDURE adj_str_lgn
  119.   OPEN "R",#1,"BOOKS.NEW",12
  120.   FIELD #1,4 AS mag$,4 AS cnt$,4 AS lgn$
  121.   GET #1,1
  122.   lgn%=CVL(lgn$)
  123.   lgn%=lgn%+(cnt%*3) ! add three empty strings to string count
  124.   lgn$=MKL$(lgn%)
  125.   PUT #1,1
  126.   CLOSE #1
  127.   PRINT "File: ";filen$;" --- total string length has been changed."
  128. RETURN
  129.